#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QIcon>
#include <QSize>
#include <QPixmap>
#include "widget.h"
#include "form.h"
#include "shop.h"
#include "hospital.h"
#include "dboperator.h"
#include "login.h"
#include "fight.h"
#include "loading.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    enum Direction {DOWN, LEFT, UP, RIGHT};
    void init_perpath();
    void init_order();

    template<typename T>
    void add_bgd_img(T* tool, QString path);   // 加载图片函数 通过ui找到控件，再添加路径

    // 定义行走：
    void walk(Direction d);
    // 设置控制权限
    void setOpenRight();

    void keyPressEvent(QKeyEvent* event);

private slots:
    void on_petbtn_clicked();      // 宝可梦展示界面入口

    void on_trainer_clicked();

    void on_Shop_clicked();

    void on_Hospital_clicked();

    void openMainWindow(int id);

    void on_enter_fight_clicked();

    void show_fight_page();

    void after_close_fightpage();

private:
    Ui::MainWindow *ui;
    QString perpath[12];

    Widget* pokemon;
    trainer* P_trainer;
    Shop* shop;
    Hospital* hospital;
    login* loginpage;
    Fight* fightpage;
    Loading* loadingpage;


    // 窗口开启管理：
    bool pokemonIsOpen;
    bool trainerIsOpen;
    bool shopIsOpen;
    bool hospitalIsOpen;
    bool fightIsOpen;
    bool openRight;    // ※

    // 图片显示
    int order;    // 人物走动帧数编号
    QTimer* per_timer;
    int id;      // 用户id
    bool next;   // 人物走动循环变量

};

#endif // MAINWINDOW_H
